SHMAT
Section: System Calls (2)
Index
Return to Main Contents
BSD mandoc
NetBSD
NAME
shmat
shmdt
- map/unmap shared memory
SYNOPSIS
Fd #include <sys/types.h>
Fd #include <sys/ipc.h>
Fd #include <sys/shm.h>
Ft void *
Fn shmat int shmid void *shmaddr int shmflg
Ft int
Fn shmdt void *shmaddr
DESCRIPTION
Fn shmat
maps the shared memory segment associated with the shared memory identifier
Fa shmid
into the address space of the calling process. The address at which the
segment is mapped is determined by the
Fa shmaddr
parameter. If it is equal to 0, the system will pick an address itself.
Otherwise, an attempt is made to map the shared memory segment at the
address
Fa shmaddr
specifies. If SHM_RND is set in
Fa shmflg ,
the system will round the address down to a multiple of SHMLBA bytes
(SHMLBA is defined in
Aq Pa sys/shm.h
).
A shared memory segment can be mapped read-only by specifying the
SHM_RDONLY flag in
Fa shmflg .
Fn shmdt
unmaps the shared memory segment that is currently mapped at
Fa shmaddr
from the calling process' address space.
Fa shmaddr
must be a value returned by a prior
Fn shmat
call. A shared memory segment will remain existant until it is removed by
a call to
shmctl(2)
with the IPC_RMID command.
RETURN VALUES
Fn shmat
returns the address at which the shared memory segment has been mapped into
the calling process' address space when successful,
Fn shmdt
returns 0 on successful completion. Otherwise, a value of -1 is returned,
and the global variable
errno
is set to indicate the error.
ERRORS
Fn shmat
will fail if:
- Bq Er EACCESS
-
The calling process has no permission to access this shared memory segment.
- Bq Er ENOMEM
-
There is not enough available data space for the calling process to
map the shared memory segment.
- Bq Er EINVAL
-
Fa shmid
is not a valid shared memory identifier.
Fa shmaddr
specifies an illegal address.
- Bq Er EMFILE
-
The number of shared memory segments has reached the system-wide limit.
Fn shmdt
will fail if:
- Bq Er EINVAL
-
Fa shmaddr
is not the start address of a mapped shared memory segment.
SEE ALSO
shmctl(2),
shmget(2),
mmap(2)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUES
-
- ERRORS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 16:28:59 GMT, April 18, 2022